﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Infrastructure.ObjectModel;

namespace Infrastructure.ServiceInterfaces
{
    public interface ICollisionDetector
    {
        bool CheckCollision(Sprite i_Sprite1, Sprite i_Sprite2);

        Sprite CheckCollision(Sprite i_Sprite1, List<Sprite> i_SpriteList);

        List<Sprite> CheckCollision(List<Sprite> i_SpriteList1, List<Sprite> i_SpriteList2);

        void RegisterCollisionCheck(Sprite i_Sprite1, Sprite i_Sprite2, EventHandler<SpriteEventArgs> i_actionMethod);

        void RegisterCollisionCheck(Sprite i_Sprite1, List<Sprite> i_SpriteList, EventHandler<SpriteEventArgs> i_actionMethod);

        void RegisterCollisionCheck(List<Sprite> i_SpriteList1, List<Sprite> i_SpriteList2, EventHandler<SpriteEventArgs> i_actionMethod);

        void UnRegisterCollisionCheck(Sprite i_Sprite1, Sprite i_Sprite2);

        void UnRegisterCollisionCheck(Sprite i_Sprite1, List<Sprite> i_SpriteList);

        void UnRegisterCollisionCheck(List<Sprite> i_SpriteList1, List<Sprite> i_SpriteList2);
    }
}
